/*
 * This file provided by Facebook is for non-commercial testing and evaluation
 * purposes only.  Facebook reserves all rights not expressly granted.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package com.facebook.fresco.samples.showcase.postprocessor;

import com.facebook.fresco.samples.showcase.imagepipeline.DurationCallback;
import com.facebook.imagepipeline.request.BasePostprocessor;

/**
 * Simple extension of {@link BasePostprocessor} for this sample app that allows to pass along the
 * runtime of the post-processing.
 */
abstract class BasePostprocessorWithDurationCallback extends BasePostprocessor {

  private final DurationCallback mDurationCallback;

  BasePostprocessorWithDurationCallback(DurationCallback durationCallback) {
    mDurationCallback = durationCallback;
  }

  void showDuration(long startNs) {
    if (mDurationCallback != null) {
      mDurationCallback.showDuration(startNs);
    }
  }
}
